The present invention relates generally to data processing, and more specifically to the analysis and management of hardware resources in a computer system through a performance counter library.
Performance counters provide statistical information about application behavior. The information contained in the performance counters may be used by operations such as, but not limited to: (i) debugging and troubleshooting performance and resource usage problems; (ii) tuning application configuration to achieve optimum performance; (iii) providing capacity management to properly scale applications according to business needs; and (iv) providing application health monitoring and service level monitoring. Typical issues that are addressed by performance counters are slow performance and high consumption of shared resources such as a central processing unit (CPU), a network, a memory, and file systems. In addition, performance counters may also be used for warning about high usage of internal application resources. For example, for an application that uses an internal queue for storing requests, the application may provide a performance counter that shows percent of queue used. When usage goes above a predefined threshold, a warning may be issued. In this manner, performance counter data helps to determine system bottlenecks and fine-tune system and application performance by providing users with an analytical data of how well the system is performing.